
#ifndef _ABS_FILEWRITER_H_
#define _ABS_FILEWRITER_H_


#include "CoreApi.hpp"
#include "AbstractObject.hpp"
#include "AbstractDataItem.hpp"

#include <QRunnable>
#include <QObject>
#include <QString>


namespace NSCore {

	class COREAPI  AbstractFileWriter :
		public QObject,
		public QRunnable,
		public AbstractObject
	{
		Q_OBJECT
	public:
		AbstractFileWriter(int id, QString filename);
		AbstractFileWriter();
		virtual ~AbstractFileWriter();
		virtual void run() = 0;
	public:
		/*set*/
		inline void setWriterFile(QString filename) { m_filename = filename; };
		inline void setWriterId(int id) { m_id = id; };
		/*set*/
		inline QString getWriterFile() { return m_filename; };
		inline int getWriterId() { return m_id; };

		/*override*/
	public:
		inline QString className() override { return "AbstractFileWriter"; };

	protected:


	protected:
		QString m_filename{};
		int m_id{ -1 };

	};

}

#endif




